home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / program / ctlib100.zip / INSTALL.LZH / INTRO.TXT < prev    next >
Text File  |  1996-10-12  |  7KB  |  78 lines

  1.                         INTRODUCTION
  2.  
  3. The structuring and organization of data is a fundamental aspect in the design and implementation of software systems.  To meet today's increasing data management needs, software developers require extensive knowledge of data structures and file organization, since these are the main elements that will determine the performance of an application.  Software developers have now a much greater responsibility to provide end users of their systems with quick and efficient access to the data that they need, and this is only possible through the proper structuring of data.
  4.  
  5.  
  6. What is the Containers Library?
  7.  
  8. The Containers Library is an object-oriented data management system that allows you to quickly incorporate powerful data structuring and data access capabilities into your applications, without the huge overhead of full blown database management systems.  It consists of a large set of easy to use, reusable data structures that range from dynamic arrays and huge collections, to tables and B+ trees, widely recognized as one of the fastest, most efficient ways to retrieve database records.  By using the Containers Library, you can you concentrate on efficiently meeting the data requirements of your applications, rather than spending your time and resources implementing complex data structures, recoding the same data structure over and over for different data types, or learning the intricacies of large database management systems.
  9.  
  10.  
  11. What's in the library?
  12.  
  13. The library provides a large variety of data structures that let you choose the most appropriate structure for a  given application, which is essential for efficient data management.  Why use a database table when all you want to do is store a sorted list of items, retrieve it later and display it in a listbox?  Or why use a collection for storing a sorted list, when you could use a height balanced binary tree or even a B+ tree for lightning fast indexed access to your data?  The Containers Library includes dynamic arrays, huge arrays, sorted arrays, stream based arrays, huge collections, stream based collections, singly and doubly-linked lists, contiguous and linked stacks, queues, binary trees, height balanced (AVL) trees, tables, B trees and B+ trees, from which you can choose the structure that best meets your needs.
  14.  
  15.  
  16. The programming interface
  17.  
  18. The data structures in the library also allow complete, flexible access to your data by using a shared programming interface.  You can use the methods in the containers for inserting, deleting and replacing items, retrieving specific items, conditionally and non- conditionally iterating over all items, and for conditional and non-conditional batch processing of the data items.  In non-linear containers (i.e. graphs), you can even restrict the scope of most methods to only those items with a certain key.
  19.  
  20. The shared interface makes the containers very easy to use, since once you understand how a method works, you'll be able to use it in any data structure that supports that method.  For example, you can use the following code to insert 3000 items into a container, and don't even care if the container is as simple as a collection or as complex as a B+ tree:
  21.  
  22.     for i := 1 to 3000 do
  23.     begin
  24.       Item := NewItem;
  25.       MyContainer^.Insert(Item);
  26.     end;
  27.  
  28. The container that you use will take care of all the data structuring details for you!
  29.  
  30. This high degree of data-structure independence applies to most methods in the interface.  Therefore, by using the Containers Library and following a few basic guidelines, you can write applications that are highly independent of the data structures that they use.  This means that you could write your own data structure using either the TGraph or TSequence interface, and just plug it into your application with little or no change to your existing code.
  31.  
  32.  
  33. What are cursors?
  34.  
  35. An additional level of abstraction is provided by the cursors interface (which will be added soon to the library).  Cursors are a set of objects that will hide all the details of the data and not only of the data structures being used.  They will let you write fully data-independent and data-aware controls and user interfaces, and completely encapsulate all the data management aspects of your applications.
  36.  
  37.  
  38. What you need to know
  39.  
  40. You need to be comfortable with object-oriented programming to use the Containers Library.  The Containers Library makes extensive use of object-oriented techniques, including inheritance and polymorphism.  These topics are covered in the chapter "Object-oriented programming" in the User's Guide of your Borland Pascal compiler.
  41.  
  42. In addition to object-oriented techniques, you also need to be familiar with the use of pointers and dynamic variables.  If you are not familiar with pointers, or if you want to review the use of pointers, see the chapter "Using Pointers" in the Users' Guide of your Borland Pascal compiler.
  43.  
  44.  
  45. Documentation overview
  46.  
  47. This manual contains complete documentation for the Containers Library, which will let you start using the product quickly and effectively.  It explains in detail all aspects of the library and provides entensive information about the containers implemented..
  48.  
  49. The Containers Library documentation consists of two parts:
  50.  
  51.   - Printed manual (programming guide)
  52.   - Online help files (reference guides)
  53.  
  54.  
  55. Using this manual
  56.  
  57. This manual has two parts:
  58.  
  59. - Part I, "The shared programming interface," provides an overview of the library and then moves on to discussing all the methods and fields in the main base objects, which provide a common interface to all containers implemented in the library.
  60.  
  61. - Part II, "Using the containers," covers the specifics of the main groups of data structures, and their respective container objects.
  62.  
  63.  
  64. Using Online help
  65.  
  66. The online help files contain the complete reference guides for the Containers Library.  To use the online help in DOS, you must install the provided TPH files in the IDE (using the Help | Files menu option) or use the THelp utility from Borland.  To access the online help in Windows, you must use Microsoft's WinHelp utility.
  67.  
  68.  
  69. Additional information
  70.  
  71. If you are not familiar with data structures or file structures, we suggest that you consult the following references for additional material on these subjects:
  72.  
  73. - Loomis, Mary E.S., "Data management and File Structures"; Prentice-Hall, Inc.
  74.  
  75. - Kruse, Robert L., "Data structures and program design"; Prentice-Hall, Inc.
  76.  
  77. - Folk, Michael J. and Zoellik, Bill, "File structures: a conceptual toolkit"; Addison-Wesley Publishing Company, Inc.
  78.